@@ -31,7 +31,7 @@ def member(request):  | 
            ||
| 31 | 31 | 
                rights = [right.data for right in rights]  | 
            
| 32 | 32 | 
                 | 
            
| 33 | 33 | 
                     goods = GoodsInfo.objects.filter(status=True).order_by('position')
               | 
            
| 34 | 
                - goods = [good.data for good in goods]  | 
            |
| 34 | 
                + goods = [good.data for good in goods][:2]  | 
            |
| 35 | 35 | 
                 | 
            
| 36 | 36 | 
                     return response(200, data={
               | 
            
| 37 | 37 | 
                'nickname': user.final_nickname,  | 
            
                @@ -146,7 +146,7 @@ def good_detail(request):  | 
            ||
| 146 | 146 | 
                'final_integral': user.final_integral,  | 
            
| 147 | 147 | 
                'shots_num': user.shots_num,  | 
            
| 148 | 148 | 
                'level': user.level,  | 
            
| 149 | 
                - 'good': good.data,  | 
            |
| 149 | 
                + 'good': good.details,  | 
            |
| 150 | 150 | 
                })  | 
            
| 151 | 151 | 
                 | 
            
| 152 | 152 | 
                 | 
            
                @@ -277,7 +277,7 @@ def activity_detail(request):  | 
            ||
| 277 | 277 | 
                return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND)  | 
            
| 278 | 278 | 
                 | 
            
| 279 | 279 | 
                     return response(200, data={
               | 
            
| 280 | 
                - 'activity': act.data(user_id),  | 
            |
| 280 | 
                + 'activity': act.details(user_id),  | 
            |
| 281 | 281 | 
                })  | 
            
| 282 | 282 | 
                 | 
            
| 283 | 283 | 
                 | 
            
                @@ -69,7 +69,6 @@ class GoodsInfo(BaseModelMixin):  | 
            ||
| 69 | 69 | 
                'good_id': self.good_id,  | 
            
| 70 | 70 | 
                'good_type': self.good_type,  | 
            
| 71 | 71 | 
                'title': self.title,  | 
            
| 72 | 
                - 'desc': self.desc,  | 
            |
| 73 | 72 | 
                'image': self.image_url,  | 
            
| 74 | 73 | 
                'slider_image': self.slider_image_url,  | 
            
| 75 | 74 | 
                'integral': self.integral,  | 
            
                @@ -77,7 +76,21 @@ class GoodsInfo(BaseModelMixin):  | 
            ||
| 77 | 76 | 
                'minlevel': self.minlevel,  | 
            
| 78 | 77 | 
                'able': True,  | 
            
| 79 | 78 | 
                }  | 
            
| 80 | 
                -  | 
            |
| 79 | 
                +  | 
            |
| 80 | 
                + @property  | 
            |
| 81 | 
                + def details(self):  | 
            |
| 82 | 
                +        return {
               | 
            |
| 83 | 
                + 'good_id': self.good_id,  | 
            |
| 84 | 
                + 'good_type': self.good_type,  | 
            |
| 85 | 
                + 'title': self.title,  | 
            |
| 86 | 
                + 'image': self.image_url,  | 
            |
| 87 | 
                + 'slider_image': self.slider_image_url,  | 
            |
| 88 | 
                + 'integral': self.integral,  | 
            |
| 89 | 
                + 'fee': self.fee,  | 
            |
| 90 | 
                + 'minlevel': self.minlevel,  | 
            |
| 91 | 
                + 'able': True,  | 
            |
| 92 | 
                + 'desc': self.desc,  | 
            |
| 93 | 
                + }  | 
            |
| 81 | 94 | 
                 | 
            
| 82 | 95 | 
                class GoodsOrderInfo(BaseModelMixin):  | 
            
| 83 | 96 | 
                PHYSICAL = 0  | 
            
                @@ -385,7 +398,27 @@ class MemberActivityInfo(BaseModelMixin):  | 
            ||
| 385 | 398 | 
                'lon': self.lon,  | 
            
| 386 | 399 | 
                'integral': self.integral,  | 
            
| 387 | 400 | 
                'cover_url': self.cover_url,  | 
            
| 401 | 
                + 'share_img_link': self.share_img_link,  | 
            |
| 402 | 
                + 'share_h5_link': self.share_h5_link,  | 
            |
| 403 | 
                + 'slider_image': self.slider_image_url,  | 
            |
| 404 | 
                + 'state': self.final_state,  | 
            |
| 405 | 
                + 'is_signed': self.is_signed(user_id),  | 
            |
| 406 | 
                + }  | 
            |
| 407 | 
                +  | 
            |
| 408 | 
                + def details(self, user_id):  | 
            |
| 409 | 
                +        return {
               | 
            |
| 410 | 
                + 'id': self.activity_id,  | 
            |
| 411 | 
                + 'activity_id': self.activity_id,  | 
            |
| 412 | 
                + 'title': self.title,  | 
            |
| 413 | 
                + 'subtitle': self.subtitle,  | 
            |
| 414 | 
                + 'date': tc.local_string(self.date, format='%Y-%m-%d'),  | 
            |
| 415 | 
                + 'city': self.city,  | 
            |
| 416 | 
                + 'location': self.location,  | 
            |
| 417 | 
                + 'lat': self.lat,  | 
            |
| 418 | 
                + 'lon': self.lon,  | 
            |
| 419 | 
                + 'integral': self.integral,  | 
            |
| 388 | 420 | 
                'content_rich_text': self.content_rich_text,  | 
            
| 421 | 
                + 'cover_url': self.cover_url,  | 
            |
| 389 | 422 | 
                'share_img_link': self.share_img_link,  | 
            
| 390 | 423 | 
                'share_h5_link': self.share_h5_link,  | 
            
| 391 | 424 | 
                'slider_image': self.slider_image_url,  |